Initialize missing methods on Windows
authorTor Lillqvist <tml@iki.fi>
Thu, 13 Aug 2009 19:49:35 +0000 (22:49 +0300)
committerTor Lillqvist <tml@iki.fi>
Thu, 13 Aug 2009 19:49:35 +0000 (22:49 +0300)
Set the input_window_destroy and input_window_crossing methods of the
GdkWindowImplIface on Windows. Add implementation of
_gdk_input_crossing_event that is mostly dummy, though.

gdk/win32/gdkinput-win32.h
gdk/win32/gdkinput.c
gdk/win32/gdkwindow-win32.c

index 3d168e102feed2793b66511935596a5008970ed5..608d8f99d645628e976db6f0e26b8f742c818b2e 100644 (file)
@@ -108,12 +108,16 @@ GdkTimeCoord ** _gdk_device_allocate_history (GdkDevice *device,
 /* The following functions are provided by each implementation
  * (just wintab for now)
  */
-void             _gdk_input_configure_event  (GdkWindow         *window);
-void             _gdk_input_enter_event      (GdkWindow         *window);
+void             _gdk_input_configure_event  (GdkWindow        *window);
+void             _gdk_input_enter_event      (GdkWindow        *window);
 gboolean         _gdk_input_other_event      (GdkEvent         *event,
                                              MSG              *msg,
                                              GdkWindow        *window);
 
+void             _gdk_input_crossing_event   (GdkWindow        *window,
+                                             gboolean          enter);
+
+
 /* These should be in gdkinternals.h */
 
 GdkInputWindow  *_gdk_input_window_find      (GdkWindow        *window);
index 477f4e3831474c0327052721b4c467b38bc11411..ddf1d91e7f24ac6d846d3732e08528abb40e0b08 100644 (file)
@@ -310,6 +310,34 @@ _gdk_input_window_destroy (GdkWindow *window)
   g_free(input_window);
 }
 
+void
+_gdk_input_crossing_event (GdkWindow *window,
+                          gboolean enter)
+{
+  GdkWindowObject *priv = (GdkWindowObject *)window;
+  GdkInputWindow *input_window;
+  gint root_x, root_y;
+
+  if (enter)
+    {
+#if 0
+      /* No idea what to do... */
+#if 0
+      gdk_input_check_proximity(display);
+#endif
+      input_window = priv->input_window;
+      if (input_window != NULL)
+       {
+         _gdk_input_get_root_relative_geometry (window, &root_x, &root_y);
+         input_window->root_x = root_x;
+         input_window->root_y = root_y;
+       }
+#endif
+    }
+  else
+    _gdk_input_ignore_core = FALSE;
+}
+
 void
 _gdk_input_exit (void)
 {
index 1380f0bd98d5b713ea3fd2db58fbeb483a018739..b70be3cbff065972b8ed2ff8b8d16dc90853e097 100644 (file)
@@ -3657,4 +3657,6 @@ gdk_window_impl_iface_init (GdkWindowImplIface *iface)
   iface->queue_antiexpose = _gdk_win32_window_queue_antiexpose;
   iface->queue_translation = _gdk_win32_window_queue_translation;
   iface->destroy = _gdk_win32_window_destroy;
+  iface->input_window_destroy = _gdk_input_window_destroy;
+  iface->input_window_crossing = _gdk_input_crossing_event;
 }